//
// Created by crp on 23-7-19.
//

#include <gtest/gtest.h>
#include <armadillo>
#include <glog/logging.h>
#include "common_function.hpp"
using namespace std;
// int m=10000,n=10000,channel=2;//channel*m*n的三维数组，初始值为1
// TEST(test_compare_vector_cube, speed2D) {

//     LOG(INFO) << "Let's test the std::vector mat and arma::cube 2Dmat's speed!";
//      // 准备参数
    
//     vector < vector<float> >matA(m,vector<float>(n, 1));

//     my_timer timer_vector;
//     my_timer timer_cube;

//     // LOG(INFO) << "matA.size is " << matA.size();
//     // LOG(INFO) << "matA[0].size is " << matA[0].size();
//     timer_vector.start();
//     for(int i=0;i<matA.size();i++)
//     {
//         for(int j=0;j<matA[0].size();j++)
//         {
//             matA[i][j] = matA[i][j] * matA[j][i];
//         }
//     }
//     timer_vector.stop();
//     LOG(INFO) << "vector calculation finished!  elspsed time: "<<timer_vector.time_use<<"(us)";


//     arma::fcube matB(m, n, 1, arma::fill::ones);
    
//     timer_cube.start();
//     for(int i=0;i<m;i++)
//     {
//         for(int j=0;j<n;j++)
//         {
//             matB(i, j, 0) = matB(i, j, 0) * matB(j, i, 0);
//         }
//     }
//     timer_cube.stop();
//     LOG(INFO) << "cube calculation finished!  elspsed time: "<<timer_cube.time_use<<"(us)";
// }
// TEST(test_compare_vector_cube, speed3D) {

//     LOG(INFO) << "Let's test the std::vector mat and arma::cube 3Dmat's speed!";
//      // 准备参数
    

//     vector<vector < vector<float> >>matA(channel, vector<vector<float>>(m, vector<float>(n , 1)));
//     my_timer timer_vector;
//     my_timer timer_cube;

//     // LOG(INFO) << "matA.size is " << matA.size();
//     // LOG(INFO) << "matA[0].size is " << matA[0].size();
//     timer_vector.start();
//     for(int k = 0; k < channel;k++){
//         for(int i=0;i < m;i++)
//         {
//             for(int j=0;j < n;j++)
//             {
//                 matA[k][i][j] = matA[k][i][j] * matA[k][j][i];
//             }
//         }
//     }
    
//     timer_vector.stop();
//     LOG(INFO) << "vector calculation finished!  elspsed time: "<<timer_vector.time_use<<"(us)";

//     arma::fcube matB(m, n, channel, arma::fill::ones);
//     timer_cube.start();
//     for(int k = 0; k < channel; k++){
//         for(int j=0;j<n;j++)
//         {
//             for(int i=0;i<m;i++)
//             {
//                 matB(i, j, k) = matB(i, j, k) * matB(j, i, k);
//             }
//         }
//     }
//     timer_cube.stop();
//     LOG(INFO) << "cube calculation finished!  elspsed time: "<<timer_cube.time_use<<"(us)";
  
// }

